Lucianic Prolog Suite - List Prolog, Language Prolog and Program Finder
Program Finder to LaP

Reverse a, taking the initial list b, and giving the final list c.
- predicate name reverse is not “apply reverse to”, where a is [] in base case (a is what predicate reverse is applied to)
- taking the initial list -  b is [] in query
- giving the final list - c is var in query

- reorders arguments so argument acted on by predicate is first

programfinder(Input1,Inputs2,Output,Extras,Program) :-
Find the program, taking the lists input1, inputs2, output and extras.
- program -> the program because program is in a noun list
program is var in query

- pretty printing the commas in these two examples is done using grammars 

write(function_name,base_case)
Write the base case, taking the function name.

- remove explaining words in lap, articles omitted:

Reverse a, taking b, giving c.
Find program, taking input1, inputs2, output and extras.
Composex base_case, taking function_name.